Lively Linear Lisp — ' Look Ma , No Garbage ! ' 1
نویسنده
چکیده
Linear logic has been proposed as one solution to the problem of garbage collection and providing efficient "updatein-place" capabilities within a more functional language. Linear logic conserves accessibility, and hence provides a mechanical metaphor which is more appropriate for a distributed-memory parallel processor in which copying is explicit. However, linear logic's lack of sharing may introduce significant inefficiencies of its own. We show an efficient implementation of linear logic called Linear Lisp that runs within a constant factor of non-linear logic. This Linear Lisp allows RPLACX operations, and manages storage as safely as a non-linear Lisp, but does not need a garbage collector. Since it offers assignments but no sharing, it occupies a twilight zone between functional languages and imperative languages. Our Linear Lisp Machine offers many of the same capabilities as combinator/graph reduction machines, but without their copying and garbage collection problems.
منابع مشابه
A Generational, Compacting Garbage Collector for C++
One of the most striking differences between any Lisp dialect and C++ is not the obvious syntax differences, but rather their opposing views on management of objects with indefinite extent. While Lisp systems automatically recover storage used by objects that are no longer needed by the program, C++ requires that the user explicitly delete the object in order to reclaim storage. Automatically m...
متن کاملGarbage Collection for Strongly - Typed Languagesusing Run - time Type
Garbage collectors perform two functions: live-object detection and dead-object reclamation. In this paper, we present a new technique for live-object detection based on run-time type reconstruction for a strongly-typed, polymorphic language. This scheme uses compile-time type information together with the run-time tree of activation frames to determine the exact type of every object participat...
متن کاملMeasuring the Cost of Storage Management
We study the cost of storage management for garbage-collected programs compiled with the Standard ML of New Jersey compiler. We show that the cost of storage management is not the same as the time spent garbage collecting. For many of the programs, the time spent garbage collecting is less than the time spent doing other storage-management tasks. 1Authors’ addresses: David Tarditi, Computer Sci...
متن کاملThe Design and Implementation of a Modern Lisp Dialect
Lisp, invented in 1958 by John McCarthy, revolutionized how programs could be written and expressed. Instead of giving explicit instructions to a computer, Lisp expressed programs as logical operations and functions. Lisp was the first language to incorporate modern language features including: garbage collection, conditionals, first class functions, and recursion. Also, in 1994 Common Lisp bec...
متن کاملRuntime Tags Aren't Necessary
Many modern programming environments use tag bits at runtime to distinguish objects of di erent types. This is particularly common in systems with garbage collection, since the garbage collector must be able to distinguish pointers from non-pointers, and to learn the length of records
متن کامل